#ifndef __PROGRAMNODE__

#define __PROGRAMNODE__

#include"expressionnode.h"
#include"variablenode.h"
#include"integernode.h"

class ProgramNode : public AbstractNode {
	
	public:
	
	VariableNode name;
	ExpressionNode * value;
	ProgramNode * next;
	
	
		
	//ProgramNode();
	ProgramNode(VariableNode const &, ExpressionNode const *);
	ProgramNode(ProgramNode const &);
	~ProgramNode();
	
	ProgramNode * append(ProgramNode *);
	ProgramNode * append(VariableNode const &, ExpressionNode const *);
	
	ExpressionNode * expand(VariableNode const &) const;
	
	string toString() const;
	
};

#endif
